package com.wlyuan.open.dto;

import com.wlyuan.open.OpenBaseSyncDTO;
import com.wlyuan.open.dto.quotation.QuotationDownDTO;
import com.wlyuan.open.dto.quotation.QuotationSurchargeDTO;
import com.wlyuan.open.dto.quotation.QuotationUpDTO;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;

/**
 * @author lijing
 * @description
 */
@EqualsAndHashCode(callSuper = true)
@Data
@ToString(callSuper = true)
public class OpenQuotationSyncDTO extends OpenBaseSyncDTO implements Serializable {
    private static final long serialVersionUID = 3096586224127091462L;
    private Long quotationId;

    @ApiModelProperty(value = "运单ID")
    private Long waybillId;
    private Integer transportMode;
    private BigDecimal calculateWeight;
    private BigDecimal calculateVolume;
    private BigDecimal calculateValue;
    private Integer totalQuantity;

    @ApiModelProperty(value = "运输费")
    private BigDecimal transportFee;
    @ApiModelProperty(value = "提货费")
    private BigDecimal pickFee;
    @ApiModelProperty(value = "送货费")
    private BigDecimal deliverFee;
    @ApiModelProperty(value = "装货费")
    private BigDecimal loadFee;
    @ApiModelProperty(value = "卸货费")
    private BigDecimal unloadFee;
    @ApiModelProperty(value = "最低费用")
    private BigDecimal minimumFee;
    @ApiModelProperty(value = "保险费")
    private BigDecimal insureFee;
    @ApiModelProperty(value = "税费")
    private BigDecimal taxFee;
    @ApiModelProperty(value = "预付款")
    private BigDecimal prepayFee;
    @ApiModelProperty(value = "货到付款")
    private BigDecimal arrivePayFee;
    @ApiModelProperty(value = "代收货款")
    private BigDecimal collectionFee;
    @ApiModelProperty(value = "附加费")
    private BigDecimal surchargeFee;

    @ApiModelProperty(value = "发货方")
    private QuotationDownDTO customer;
    @ApiModelProperty(value = "承运方")
    private QuotationUpDTO carrier;

    @ApiModelProperty(value = "费用明细")
    private List<QuotationSurchargeDTO> fees;

    @ApiModelProperty(value = "备注说明")
    private String remarks;

    @ApiModelProperty(value = "模板ID")
    private Long templateId;

    @ApiModelProperty(value = "是否重算")
    private Integer recalculated;

    @ApiModelProperty("租户id")
    private Long tenantId;

    private LocalDateTime createAt;
}

